<script>
    // async/await : promise + generator"语法糖"，让pormise语法更简洁
     // async 异步 ：用来修饰一个函数，目的让函数返回一个pormise实例[只能添加函数]
     // async主要目的：当函数中使用await，则当前函数必须经过async修饰
     // await:可以等待异步操作结束，放回pormise实例状态是成功，再去执行下面的代码
      //let value = await[pormise实例]
      // 等待pormise状态为成功，把成功的值给value，再继续执行
      // 如果实例失败下面代码不会执行
     const fn =async () => {
        return 10;
     };
     console.log(fn()); 

     const fn1= () => {
        return new Promise((resolve,reject) =>{
               setTimeout(()=>{
                resolve(100)
               },2000)
        })
     }
     (async function (){  // 异常处理try{}
        try{
            let value = await fn1()
        console.log('成功' ,value);
        } catch (reason) {
            // 处理await失败实例的情况
            console.log('失败',reason);
        }
        
     })();

     const delay = function (interval) {
        return new Promise(resolve =>{
            setTimeout(()=>{
                resolve()
            },interval)
        })
     };
     (async ()=>{
        console.log(1)
        await delay(3000);
        console.log(2);
     })();
</script>